package com.vueapi.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.vueapi.domain.HjUser;

import java.io.*;

/**
 * 生成JSON文件
 * @author Dhjie
 *
 */
public class CreateJsonFileUtils {

    public static void main(String[] args) {
        // 指定存储人员JSON文件的根目录
        String rootDirectory = "D:\\uploadFile\\user_data";

        // 遍历根目录下的文件夹
        File rootDir = new File(rootDirectory);
        if (rootDir.exists() && rootDir.isDirectory()) {
            File[] personIdFolders = rootDir.listFiles(File::isDirectory);
            if (personIdFolders != null) {
                for (File personIdFolder : personIdFolders) {
                    // 获取人员ID，假设文件夹的名称对应人员ID
                    int personId = Integer.parseInt(personIdFolder.getName());

                    // 构建JSON文件路径，假设JSON文件名称也是人员ID
                    String jsonFilePath = personIdFolder.getAbsolutePath() + File.separator + personId + ".json";

                    try {
                        // 读取JSON文件并解析为 Person 对象
                        String jsonString = org.apache.commons.io.FileUtils.readFileToString(new File(jsonFilePath), "UTF-8");
                        HjUser person = JSON.parseObject(jsonString, HjUser.class);

                        // 输出 Person 对象信息
                        System.out.println("Person ID: " + person.getId());
                        System.out.println("Person Name: " + person.getUsername());
                        // 其他字段也可以类似地输出

                    } catch (IOException e) {
                        e.printStackTrace();
                        System.err.println("Error reading JSON file for person ID: " + personId);
                    }
                }
            }
        }
    }

    /**
     * 生成.json格式文件
     * 参数说明：
     * jsonString：json的字符串 ；filePath：要把生成的json文件放到什么位置；fileName：给json文件的命名
     * 返回值为布尔值：flag，默认为true，代表是否生成json文件成功
     */
    public static boolean createJsonFile(String jsonString, String filePath, String fileName) {
        // 标记文件生成是否成功
        boolean flag = true;

        // 拼接文件完整路径
        String fullPath = filePath + File.separator + fileName + ".json";

        // 生成json格式文件
        try {
            // 保证创建一个新文件
            File file = new File(fullPath);
            if (!file.getParentFile().exists()) { // 如果父目录不存在，创建父目录
                file.getParentFile().mkdirs();
            }
            if (file.exists()) { // 如果已存在,删除旧文件
                file.delete();
            }
            file.createNewFile();

            // 格式化json字符串
            jsonString = JsonFormatTool.formatJson(jsonString);

            // 将格式化后的字符串写入文件
            Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
            write.write(jsonString);
            write.flush();
            write.close();
        } catch (Exception e) {
            flag = false;
            e.printStackTrace();
        }

        // 返回是否成功的标记
        return flag;
    }

}

